1. Field of the Invention
The invention relates generally to broadcast television systems and more particularly to a system and method for playing back programs which have been stored on the storage device of an interactive television system receiver, wherein the programs contain one or more interactive applications.
2. Description of Related Art
Interactive television systems provide a means to deliver interactive content as well as ordinary television audio and video to a large number of subscribers. Programs broadcast by these systems may incorporate television audio and video, still images, text, interactive graphics and applications, and many other components. The interactive content of the interactive television signal may therefore include application code, data associated with the audio and video, control signals, raw data and many other types of information.
Interactive content such as application code or information relating to television programs is usually broadcast in a repeating format. In other words, each piece of information is broadcast a first time, then each is transmitted a second time, and so on. The cycle is repeated so that each piece of interactive data is transmitted, for example, every ten seconds. The pieces of information which are broadcast in this manner form what is referred to as a “carousel.” The sequence of information that makes up the carousel can be prepared in advance, or it can be determined “on the fly.”
Broadcast systems (e.g., interactive television systems) transmit information in a carousel format in order to allow receivers in the system to selectively obtain particular pieces of information in the carousel without requiring a return path from the receivers to the server. If a particular receiver needs a particular piece of information, it can simply wait until next time that piece of information is broadcast to obtain the information. If the information were not cyclically broadcast, the receiver would have to transmit a request for the information to the server, thus requiring a return path. Other receivers in the system can operate in the same manner, each receiver waiting for the information it needs, and then using only that information. By employing carousels to broadcast information, the system eliminates the need to connect each of the receivers with the server and further eliminates the need for the server to process individual requests for information. Generally, a broadcast signal may include a number of programs which in turn may include a number of audio/video streams and/or data streams. Data streams may be used to carry data such as interactive application data, subtitle information, or other data.
The pieces of information, or data objects, in a carousel are often intended to be combined to form a single program. This program may also contain streaming data such as audio or video. For example, an interactive television game show may combine television audio and video with interactive content such as application code which allows users to answer questions. Another example would be a news program which combines audio and video with application code that inserts current stock prices in a banner at the bottom of the screen. It is to be understood that the term “program” as used herein refers to any broadcast material including television shows, sporting events, news programs, movies, or any other type of broadcast material, or segment of the show, event, program, movie, or other material. The program may include only audio, video, data, or any combination thereof. The program may be only a portion of a television show or broadcast (e.g., without commercials, or missing a portion of the beginning or end) or may be more than one show, or include commercials, for example.
Program content received in a broadcast system is normally intended to be consumed immediately. It is nevertheless possible to record this content for later playback. The broadcast information can be recorded “as is” (i.e., as the stream of data transmitted to the receiver,) or it may be recorded as a set of files that can be accessed randomly instead of sequentially. If the information is recorded as a data stream, the data may be referred to as “pushed” data since the receiver must play the information back as a data stream—it cannot retrieve particular data objects out of order. Data objects which are recorded as a set of files can be individually retrieved, and may therefore be referred to as “pulled” data.
Regardless of whether an interactive program is stored as pushed content or pulled content, there may be difficulties in playing back the recorded program, since it was originally intended for immediate consumption. Although it may be a relatively simple matter to play back the entire program from start to finish, just as it was originally provided to a user, the user may wish to use a special mode, such as pausing, fast-forwarding, reversing, or jumping to particular points in the program when it is replayed. Because the program may include different interactive applications which are in various states throughout the program, it is necessary to maintain the proper states for these applications, even when parts of the program are skipped in special playback modes. Further, the applications may interact with other data objects, so in a special playback mode it may be necessary to generate signals that would not otherwise be generated.